Computing environments may provide different formalisms for representing one or more portions of a single underlying system. A formalism may provide a formal language in which a representation is implemented. For example, a formalism may include a set of formation rules that describe the syntax and semantics of the representation that are grammatical or valid within the formal language (e.g., by means of a grammar, enumeration, transformation, meta-model, etc.). Formalisms can be provided by, for example, different modeling environments (e.g., text-based modeling environment, graphical modeling environments), different languages for deployment computing instructions on different targets (e.g., for an embedded processor target, a field-programmable gate array (FPGA) target), different programming languages (e.g., C++, Java), etc.
A system may have multiple portions. A single portion of a system may be represented in different formalisms. For example, suppose a dynamic system includes a real-world object (e.g., a swinging pendulum). This real-world object may be represented by a graphical model presented in a model editor. In addition, this real-world object may be represented by code associated with the graphical model that is presented in a code editor. In this example, the model editor and the code editor present different formalisms that dictate the syntax and semantics of the two, different representations.
Similarly, different portions of a system may be represented in different formalisms. For example, a dynamic system may be represented by a model, and the model may be partitioned into two sub-models. One sub-model may be modeled for deployment as software on an embedded processor, and the other sub-model may be modeled for deployment on a field-programmable gate array (FPGA). In this example, the embedded processor target and the FPGA target may present different formalisms that dictate the syntax and semantics of the two different representations for two different portions of the system.